/*
 * GradesDesktopImportView.java
 */

package gradesdesktopimport;

import com.eusoft.grades.school.Category;
import com.eusoft.grades.school.Course;
import com.eusoft.grades.school.Course_Schedule_Container;
import com.eusoft.grades.school.Course_Schedule_ContainerGroup;
import com.eusoft.grades.school.Item;
import com.eusoft.grades.school.Letter;
import com.eusoft.grades.school.ProcessCourseID;
import com.eusoft.grades.school.Semester;
import com.eusoft.grades.school.Student;
import com.eusoft.grades.school.SyncAndroid;
import com.eusoft.grades.school.TestScore;
import java.awt.Color;
import java.awt.DisplayMode;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import org.jdesktop.application.Action;
import org.jdesktop.application.ResourceMap;
import org.jdesktop.application.SingleFrameApplication;
import org.jdesktop.application.FrameView;
import org.jdesktop.application.TaskMonitor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.Date;
import javax.swing.DefaultComboBoxModel;
import javax.swing.Timer;
import javax.swing.Icon;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.filechooser.FileSystemView;

/**
 * The application's main frame.
 */
public class GradesDesktopImportView extends FrameView {

    public Student student = new Student("DONTSAVE");
    

    public GradesDesktopImportView(SingleFrameApplication app) {
        super(app);

        initComponents();

        try{
        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
        GraphicsDevice[] gs = ge.getScreenDevices();
        DisplayMode dm = gs[0].getDisplayMode();
        NoStudent.setLocation(dm.getWidth()/4, dm.getHeight()/4);
        }catch(Exception e){}

        try{
        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
        GraphicsDevice[] gs = ge.getScreenDevices();
        DisplayMode dm = gs[0].getDisplayMode();
        NoStudent.setLocation(dm.getWidth()/4, dm.getHeight()/4);
        }catch(Exception e){}
        // status bar initialization - message timeout, idle icon and busy animation, etc
        ResourceMap resourceMap = getResourceMap();
        int messageTimeout = resourceMap.getInteger("StatusBar.messageTimeout");
        messageTimer = new Timer(messageTimeout, new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                statusMessageLabel.setText("");
            }
        });
        messageTimer.setRepeats(false);
        int busyAnimationRate = resourceMap.getInteger("StatusBar.busyAnimationRate");
        for (int i = 0; i < busyIcons.length; i++) {
            busyIcons[i] = resourceMap.getIcon("StatusBar.busyIcons[" + i + "]");
        }
        busyIconTimer = new Timer(busyAnimationRate, new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                busyIconIndex = (busyIconIndex + 1) % busyIcons.length;
                statusAnimationLabel.setIcon(busyIcons[busyIconIndex]);
            }
        });
        idleIcon = resourceMap.getIcon("StatusBar.idleIcon");
        statusAnimationLabel.setIcon(idleIcon);
        progressBar.setVisible(false);

        // connecting action tasks to status bar via TaskMonitor
        TaskMonitor taskMonitor = new TaskMonitor(getApplication().getContext());
        taskMonitor.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
            public void propertyChange(java.beans.PropertyChangeEvent evt) {
                String propertyName = evt.getPropertyName();
                if ("started".equals(propertyName)) {
                    if (!busyIconTimer.isRunning()) {
                        statusAnimationLabel.setIcon(busyIcons[0]);
                        busyIconIndex = 0;
                        busyIconTimer.start();
                    }
                    progressBar.setVisible(true);
                    progressBar.setIndeterminate(true);
                } else if ("done".equals(propertyName)) {
                    busyIconTimer.stop();
                    statusAnimationLabel.setIcon(idleIcon);
                    progressBar.setVisible(false);
                    progressBar.setValue(0);
                } else if ("message".equals(propertyName)) {
                    String text = (String)(evt.getNewValue());
                    statusMessageLabel.setText((text == null) ? "" : text);
                    messageTimer.restart();
                } else if ("progress".equals(propertyName)) {
                    int value = (Integer)(evt.getNewValue());
                    progressBar.setVisible(true);
                    progressBar.setIndeterminate(false);
                    progressBar.setValue(value);
                }
            }
        });
    }

    @Action
    public void showAboutBox() {
        if (aboutBox == null) {
            JFrame mainFrame = GradesDesktopImportApp.getApplication().getMainFrame();
            aboutBox = new GradesDesktopImportAboutBox(mainFrame);
            aboutBox.setLocationRelativeTo(mainFrame);
        }
        GradesDesktopImportApp.getApplication().show(aboutBox);
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        mainPanel = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        Load_BTN = new javax.swing.JButton();
        Profile_Loaded = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        AddSem_BTN = new javax.swing.JButton();
        AddCourse_BTN = new javax.swing.JButton();
        AddItem_BTN = new javax.swing.JButton();
        AddScore_BTN = new javax.swing.JButton();
        Action = new javax.swing.JLabel();
        jLabel10 = new javax.swing.JLabel();
        Save_BTN = new javax.swing.JButton();
        AddCategory_BTN = new javax.swing.JButton();
        menuBar = new javax.swing.JMenuBar();
        javax.swing.JMenu fileMenu = new javax.swing.JMenu();
        javax.swing.JMenuItem exitMenuItem = new javax.swing.JMenuItem();
        javax.swing.JMenu helpMenu = new javax.swing.JMenu();
        javax.swing.JMenuItem aboutMenuItem = new javax.swing.JMenuItem();
        statusPanel = new javax.swing.JPanel();
        javax.swing.JSeparator statusPanelSeparator = new javax.swing.JSeparator();
        statusMessageLabel = new javax.swing.JLabel();
        statusAnimationLabel = new javax.swing.JLabel();
        progressBar = new javax.swing.JProgressBar();
        Dialog_DriveSelectImport = new javax.swing.JDialog();
        jLabel6 = new javax.swing.JLabel();
        mComboBox_Drive1 = new javax.swing.JComboBox();
        jButton11 = new javax.swing.JButton();
        jLabel8 = new javax.swing.JLabel();
        AddSemester = new javax.swing.JDialog();
        jLabel11 = new javax.swing.JLabel();
        AddSemesterSubmit = new javax.swing.JButton();
        Term = new javax.swing.JComboBox();
        jLabel12 = new javax.swing.JLabel();
        jLabel13 = new javax.swing.JLabel();
        Year = new javax.swing.JTextField();
        jLabel14 = new javax.swing.JLabel();
        AddCourse = new javax.swing.JDialog();
        jLabel15 = new javax.swing.JLabel();
        AddCourseSubmit = new javax.swing.JButton();
        jLabel16 = new javax.swing.JLabel();
        jLabel23 = new javax.swing.JLabel();
        jLabel24 = new javax.swing.JLabel();
        jLabel25 = new javax.swing.JLabel();
        jLabel26 = new javax.swing.JLabel();
        jLabel27 = new javax.swing.JLabel();
        jLabel28 = new javax.swing.JLabel();
        jLabel29 = new javax.swing.JLabel();
        jLabel30 = new javax.swing.JLabel();
        jLabel31 = new javax.swing.JLabel();
        isWeighted = new javax.swing.JRadioButton();
        jRadioButton2 = new javax.swing.JRadioButton();
        Number = new javax.swing.JTextField();
        Section = new javax.swing.JTextField();
        Hours = new javax.swing.JTextField();
        Instructor = new javax.swing.JTextField();
        Email = new javax.swing.JTextField();
        Website = new javax.swing.JTextField();
        Office = new javax.swing.JTextField();
        jLabel32 = new javax.swing.JLabel();
        jLabel33 = new javax.swing.JLabel();
        jLabel34 = new javax.swing.JLabel();
        StartDate = new javax.swing.JTextField();
        EndDate = new javax.swing.JTextField();
        Semester = new javax.swing.JComboBox();
        jLabel7 = new javax.swing.JLabel();
        jScrollPane3 = new javax.swing.JScrollPane();
        Notes = new javax.swing.JTextArea();
        isGraded = new javax.swing.JCheckBox();
        jLabel35 = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        Scale = new javax.swing.JTable();
        jScrollPane2 = new javax.swing.JScrollPane();
        MeetingTimes = new javax.swing.JTable();
        CourseName = new javax.swing.JTextField();
        AddItems = new javax.swing.JDialog();
        jLabel17 = new javax.swing.JLabel();
        jLabel18 = new javax.swing.JLabel();
        AddItem_Submit = new javax.swing.JButton();
        jLabel4 = new javax.swing.JLabel();
        jLabel9 = new javax.swing.JLabel();
        jLabel40 = new javax.swing.JLabel();
        isComplete = new javax.swing.JCheckBox();
        isGraded_item = new javax.swing.JCheckBox();
        pointsearned = new javax.swing.JTextField();
        pointspossible = new javax.swing.JTextField();
        name_item = new javax.swing.JTextField();
        jScrollPane4 = new javax.swing.JScrollPane();
        Notes_item = new javax.swing.JTextArea();
        jLabel41 = new javax.swing.JLabel();
        jLabel42 = new javax.swing.JLabel();
        semester_item = new javax.swing.JComboBox();
        jLabel43 = new javax.swing.JLabel();
        jLabel44 = new javax.swing.JLabel();
        course_item = new javax.swing.JComboBox();
        category_item = new javax.swing.JComboBox();
        jLabel45 = new javax.swing.JLabel();
        item_due = new javax.swing.JTextField();
        jLabel46 = new javax.swing.JLabel();
        AddTestScore = new javax.swing.JDialog();
        jLabel19 = new javax.swing.JLabel();
        AddScore_Submit = new javax.swing.JButton();
        jLabel21 = new javax.swing.JLabel();
        jLabel22 = new javax.swing.JLabel();
        TestScore_name = new javax.swing.JTextField();
        TestScore_score = new javax.swing.JTextField();
        buttonGroup1 = new javax.swing.ButtonGroup();
        AddCategory = new javax.swing.JDialog();
        jLabel36 = new javax.swing.JLabel();
        Category_Submit = new javax.swing.JButton();
        category_nam = new javax.swing.JLabel();
        label = new javax.swing.JLabel();
        category_name = new javax.swing.JTextField();
        category_weight = new javax.swing.JTextField();
        jLabel20 = new javax.swing.JLabel();
        category_drops = new javax.swing.JTextField();
        jLabel56 = new javax.swing.JLabel();
        jLabel37 = new javax.swing.JLabel();
        semester_spin = new javax.swing.JComboBox();
        course_spin = new javax.swing.JComboBox();
        jLabel38 = new javax.swing.JLabel();
        NoStudent = new javax.swing.JDialog();
        jButton12 = new javax.swing.JButton();
        jLabel47 = new javax.swing.JLabel();

        mainPanel.setMaximumSize(new java.awt.Dimension(688, 286));
        mainPanel.setName("mainPanel"); // NOI18N
        mainPanel.setRequestFocusEnabled(false);
        mainPanel.setSize(new java.awt.Dimension(650, 338));

        org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(gradesdesktopimport.GradesDesktopImportApp.class).getContext().getResourceMap(GradesDesktopImportView.class);
        jLabel1.setText(resourceMap.getString("jLabel1.text")); // NOI18N
        jLabel1.setName("jLabel1"); // NOI18N

        jLabel2.setText(resourceMap.getString("jLabel2.text")); // NOI18N
        jLabel2.setName("jLabel2"); // NOI18N

        jLabel3.setText(resourceMap.getString("jLabel3.text")); // NOI18N
        jLabel3.setName("jLabel3"); // NOI18N

        Load_BTN.setText("Load Profile from Phone");
        Load_BTN.setActionCommand(resourceMap.getString("Load_BTN.actionCommand")); // NOI18N
        Load_BTN.setName("Load_BTN"); // NOI18N
        Load_BTN.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                Load_BTNActionPerformed(evt);
            }
        });

        Profile_Loaded.setForeground(new Color(0,0,153));
        Profile_Loaded.setText(resourceMap.getString("StudentName.text")); // NOI18N
        Profile_Loaded.setName("StudentName"); // NOI18N

        jLabel5.setText(resourceMap.getString("jLabel5.text")); // NOI18N
        jLabel5.setName("jLabel5"); // NOI18N

        AddSem_BTN.setText("Add Semester");
        AddSem_BTN.setName("AddSem_BTN"); // NOI18N
        AddSem_BTN.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                AddSem_BTNActionPerformed(evt);
            }
        });

        AddCourse_BTN.setText("Add Course");
        AddCourse_BTN.setName("AddCourse_BTN"); // NOI18N
        AddCourse_BTN.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                AddCourse_BTNActionPerformed(evt);
            }
        });

        AddItem_BTN.setText("Add Item/Assignment");
        AddItem_BTN.setName("AddItem_BTN"); // NOI18N
        AddItem_BTN.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                AddItem_BTNActionPerformed(evt);
            }
        });

        AddScore_BTN.setText("Add Test Score");
        AddScore_BTN.setName("AddScore_BTN"); // NOI18N
        AddScore_BTN.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                AddScore_BTNActionPerformed(evt);
            }
        });

        Action.setForeground(new Color(153,0,0));
        Action.setText(resourceMap.getString("Action.text")); // NOI18N
        Action.setName("Action"); // NOI18N

        jLabel10.setText("<html><b>Step 6:</b> When you're finished importing Save your profile with this button:");
        jLabel10.setName("jLabel10"); // NOI18N

        Save_BTN.setText("Save Profile to Phone");
        Save_BTN.setName("Save_BTN"); // NOI18N
        Save_BTN.setSize(new java.awt.Dimension(722, 339));
        Save_BTN.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                Save_BTNActionPerformed(evt);
            }
        });

        AddCategory_BTN.setText("Add Category");
        AddCategory_BTN.setName("AddCategory_BTN"); // NOI18N
        AddCategory_BTN.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                AddCategory_BTNActionPerformed(evt);
            }
        });

        org.jdesktop.layout.GroupLayout mainPanelLayout = new org.jdesktop.layout.GroupLayout(mainPanel);
        mainPanel.setLayout(mainPanelLayout);
        mainPanelLayout.setHorizontalGroup(
            mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(mainPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(jLabel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(Profile_Loaded)
                    .add(jLabel5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(Action)
                    .add(mainPanelLayout.createSequentialGroup()
                        .add(jLabel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(Load_BTN))
                    .add(jLabel2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false)
                        .add(org.jdesktop.layout.GroupLayout.LEADING, mainPanelLayout.createSequentialGroup()
                            .add(jLabel10)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .add(Save_BTN))
                        .add(org.jdesktop.layout.GroupLayout.LEADING, mainPanelLayout.createSequentialGroup()
                            .add(AddSem_BTN)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(AddCourse_BTN)
                            .add(6, 6, 6)
                            .add(AddCategory_BTN)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(AddItem_BTN)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
                            .add(AddScore_BTN))))
                .addContainerGap(20, Short.MAX_VALUE))
        );
        mainPanelLayout.setVerticalGroup(
            mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(mainPanelLayout.createSequentialGroup()
                .add(14, 14, 14)
                .add(jLabel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(12, 12, 12)
                .add(jLabel2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
                .add(mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(jLabel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(Load_BTN))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(Profile_Loaded)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
                .add(jLabel5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
                .add(mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(AddSem_BTN)
                    .add(AddItem_BTN)
                    .add(AddCourse_BTN)
                    .add(AddScore_BTN)
                    .add(AddCategory_BTN))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(Action)
                .add(18, 18, 18)
                .add(mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(jLabel10)
                    .add(Save_BTN))
                .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        AddCategory_BTN.getAccessibleContext().setAccessibleName(resourceMap.getString("jButton12.AccessibleContext.accessibleName")); // NOI18N

        menuBar.setName("menuBar"); // NOI18N

        fileMenu.setText(resourceMap.getString("fileMenu.text")); // NOI18N
        fileMenu.setName("fileMenu"); // NOI18N

        javax.swing.ActionMap actionMap = org.jdesktop.application.Application.getInstance(gradesdesktopimport.GradesDesktopImportApp.class).getContext().getActionMap(GradesDesktopImportView.class, this);
        exitMenuItem.setAction(actionMap.get("quit")); // NOI18N
        exitMenuItem.setName("exitMenuItem"); // NOI18N
        fileMenu.add(exitMenuItem);

        menuBar.add(fileMenu);

        helpMenu.setText(resourceMap.getString("helpMenu.text")); // NOI18N
        helpMenu.setName("helpMenu"); // NOI18N

        aboutMenuItem.setAction(actionMap.get("showAboutBox")); // NOI18N
        aboutMenuItem.setName("aboutMenuItem"); // NOI18N
        helpMenu.add(aboutMenuItem);

        menuBar.add(helpMenu);

        statusPanel.setName("statusPanel"); // NOI18N

        statusPanelSeparator.setName("statusPanelSeparator"); // NOI18N

        statusMessageLabel.setName("statusMessageLabel"); // NOI18N

        statusAnimationLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        statusAnimationLabel.setName("statusAnimationLabel"); // NOI18N

        progressBar.setName("progressBar"); // NOI18N

        org.jdesktop.layout.GroupLayout statusPanelLayout = new org.jdesktop.layout.GroupLayout(statusPanel);
        statusPanel.setLayout(statusPanelLayout);
        statusPanelLayout.setHorizontalGroup(
            statusPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(statusPanelSeparator, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 698, Short.MAX_VALUE)
            .add(statusPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(statusMessageLabel)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 658, Short.MAX_VALUE)
                .add(statusAnimationLabel)
                .addContainerGap())
            .add(org.jdesktop.layout.GroupLayout.TRAILING, statusPanelLayout.createSequentialGroup()
                .addContainerGap(534, Short.MAX_VALUE)
                .add(progressBar, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        statusPanelLayout.setVerticalGroup(
            statusPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(statusPanelLayout.createSequentialGroup()
                .add(statusPanelSeparator, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .add(statusPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(statusPanelLayout.createSequentialGroup()
                        .add(statusAnimationLabel)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(progressBar, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(statusMessageLabel))
                .add(3, 3, 3))
        );

        Dialog_DriveSelectImport.setAlwaysOnTop(true);
        Dialog_DriveSelectImport.setMinimumSize(new java.awt.Dimension(333, 120));
        Dialog_DriveSelectImport.setName("Dialog_DriveSelectImport"); // NOI18N
        Dialog_DriveSelectImport.setResizable(false);

        jLabel6.setName("jLabel6"); // NOI18N

        mComboBox_Drive1.setName("mComboBox_Drive1"); // NOI18N

        jButton11.setText("OK");
        jButton11.setName("jButton11"); // NOI18N
        jButton11.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton11ActionPerformed(evt);
            }
        });

        jLabel8.setText("Android Drive");
        jLabel8.setName("jLabel8"); // NOI18N

        org.jdesktop.layout.GroupLayout Dialog_DriveSelectImportLayout = new org.jdesktop.layout.GroupLayout(Dialog_DriveSelectImport.getContentPane());
        Dialog_DriveSelectImport.getContentPane().setLayout(Dialog_DriveSelectImportLayout);
        Dialog_DriveSelectImportLayout.setHorizontalGroup(
            Dialog_DriveSelectImportLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(Dialog_DriveSelectImportLayout.createSequentialGroup()
                .addContainerGap()
                .add(Dialog_DriveSelectImportLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                    .add(org.jdesktop.layout.GroupLayout.LEADING, jLabel6)
                    .add(org.jdesktop.layout.GroupLayout.LEADING, Dialog_DriveSelectImportLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                        .add(jButton11)
                        .add(Dialog_DriveSelectImportLayout.createSequentialGroup()
                            .add(jLabel8)
                            .add(51, 51, 51)
                            .add(mComboBox_Drive1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 161, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))))
                .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        Dialog_DriveSelectImportLayout.setVerticalGroup(
            Dialog_DriveSelectImportLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(Dialog_DriveSelectImportLayout.createSequentialGroup()
                .addContainerGap()
                .add(Dialog_DriveSelectImportLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(jLabel6)
                    .add(Dialog_DriveSelectImportLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                        .add(mComboBox_Drive1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(jLabel8)))
                .add(18, 18, 18)
                .add(jButton11)
                .addContainerGap(26, Short.MAX_VALUE))
        );

        AddSemester.setMinimumSize(new java.awt.Dimension(226, 170));
        AddSemester.setName("AddSemester"); // NOI18N
        AddSemester.setResizable(false);

        jLabel11.setText(resourceMap.getString("jLabel11.text")); // NOI18N
        jLabel11.setName("jLabel11"); // NOI18N

        AddSemesterSubmit.setText("Add to Profile");
        AddSemesterSubmit.setName("AddSemesterSubmit"); // NOI18N
        AddSemesterSubmit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                AddSemesterSubmitActionPerformed(evt);
            }
        });

        Term.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Spring", "Summer", "Fall", "Winter" }));
        Term.setName("Term"); // NOI18N

        jLabel12.setText(resourceMap.getString("jLabel12.text")); // NOI18N
        jLabel12.setName("jLabel12"); // NOI18N

        jLabel13.setText(resourceMap.getString("jLabel13.text")); // NOI18N
        jLabel13.setName("jLabel13"); // NOI18N

        Year.setText(resourceMap.getString("Year.text")); // NOI18N
        Year.setName("Year"); // NOI18N

        jLabel14.setText(resourceMap.getString("jLabel14.text")); // NOI18N
        jLabel14.setName("jLabel14"); // NOI18N

        org.jdesktop.layout.GroupLayout AddSemesterLayout = new org.jdesktop.layout.GroupLayout(AddSemester.getContentPane());
        AddSemester.getContentPane().setLayout(AddSemesterLayout);
        AddSemesterLayout.setHorizontalGroup(
            AddSemesterLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(AddSemesterLayout.createSequentialGroup()
                .add(AddSemesterLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(AddSemesterLayout.createSequentialGroup()
                        .addContainerGap()
                        .add(jLabel11, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(AddSemesterLayout.createSequentialGroup()
                        .add(87, 87, 87)
                        .add(jLabel14)))
                .addContainerGap(79, Short.MAX_VALUE))
            .add(AddSemesterLayout.createSequentialGroup()
                .addContainerGap()
                .add(AddSemesterLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                    .add(AddSemesterLayout.createSequentialGroup()
                        .add(5, 5, 5)
                        .add(jLabel13))
                    .add(jLabel12))
                .add(AddSemesterLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                    .add(AddSemesterLayout.createSequentialGroup()
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(Term, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 139, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(org.jdesktop.layout.GroupLayout.LEADING, AddSemesterLayout.createSequentialGroup()
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(Year, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 137, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
            .add(org.jdesktop.layout.GroupLayout.TRAILING, AddSemesterLayout.createSequentialGroup()
                .addContainerGap(81, Short.MAX_VALUE)
                .add(AddSemesterSubmit)
                .addContainerGap())
        );
        AddSemesterLayout.setVerticalGroup(
            AddSemesterLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(AddSemesterLayout.createSequentialGroup()
                .addContainerGap()
                .add(jLabel11, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(AddSemesterLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(Term, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jLabel12))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
                .add(AddSemesterLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(Year, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jLabel13))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jLabel14)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .add(AddSemesterSubmit)
                .addContainerGap())
        );

        AddCourse.setMinimumSize(new java.awt.Dimension(1165, 610));
        AddCourse.setName("AddCourse"); // NOI18N
        AddCourse.setResizable(false);

        jLabel15.setText(resourceMap.getString("jLabel15.text")); // NOI18N
        jLabel15.setName("jLabel15"); // NOI18N

        AddCourseSubmit.setText("Add to Profile");
        AddCourseSubmit.setName("AddCourseSubmit"); // NOI18N
        AddCourseSubmit.setSize(new java.awt.Dimension(1189, 599));
        AddCourseSubmit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                AddCourseSubmitActionPerformed(evt);
            }
        });

        jLabel16.setText(resourceMap.getString("jLabel16.text")); // NOI18N
        jLabel16.setName("jLabel16"); // NOI18N

        jLabel23.setText(resourceMap.getString("jLabel23.text")); // NOI18N
        jLabel23.setName("jLabel23"); // NOI18N

        jLabel24.setText(resourceMap.getString("jLabel24.text")); // NOI18N
        jLabel24.setName("jLabel24"); // NOI18N

        jLabel25.setText(resourceMap.getString("jLabel25.text")); // NOI18N
        jLabel25.setName("jLabel25"); // NOI18N

        jLabel26.setText(resourceMap.getString("jLabel26.text")); // NOI18N
        jLabel26.setName("jLabel26"); // NOI18N

        jLabel27.setText(resourceMap.getString("jLabel27.text")); // NOI18N
        jLabel27.setName("jLabel27"); // NOI18N

        jLabel28.setText(resourceMap.getString("jLabel28.text")); // NOI18N
        jLabel28.setName("jLabel28"); // NOI18N

        jLabel29.setText(resourceMap.getString("jLabel29.text")); // NOI18N
        jLabel29.setName("jLabel29"); // NOI18N

        jLabel30.setText(resourceMap.getString("jLabel30.text")); // NOI18N
        jLabel30.setName("jLabel30"); // NOI18N

        jLabel31.setText(resourceMap.getString("jLabel31.text")); // NOI18N
        jLabel31.setName("jLabel31"); // NOI18N

        buttonGroup1.add(isWeighted);
        isWeighted.setText("<html>Weighted Categories (e.g. Exams 50%, Homework 25%, Quizzes 25%)></html>");
        isWeighted.setActionCommand(resourceMap.getString("isWeighted.actionCommand")); // NOI18N
        isWeighted.setName("isWeighted"); // NOI18N

        buttonGroup1.add(jRadioButton2);
        jRadioButton2.setText(resourceMap.getString("jRadioButton2.text")); // NOI18N
        jRadioButton2.setName("jRadioButton2"); // NOI18N

        Number.setText(resourceMap.getString("Number.text")); // NOI18N
        Number.setName("Number"); // NOI18N

        Section.setText(resourceMap.getString("Section.text")); // NOI18N
        Section.setName("Section"); // NOI18N

        Hours.setText(resourceMap.getString("Section"
            + ".text"));
    Hours.setName("Hours"); // NOI18N

    Instructor.setName("Instructor"); // NOI18N

    Email.setName("Email"); // NOI18N

    Website.setName("Website"); // NOI18N

    Office.setText(resourceMap.getString("Office.text")); // NOI18N
    Office.setName("Office"); // NOI18N

    jLabel32.setText(resourceMap.getString("jLabel32.text")); // NOI18N
    jLabel32.setName("jLabel32"); // NOI18N

    jLabel33.setText(resourceMap.getString("jLabel33.text")); // NOI18N
    jLabel33.setName("jLabel33"); // NOI18N

    jLabel34.setText(resourceMap.getString("jLabel34.text")); // NOI18N
    jLabel34.setName("jLabel34"); // NOI18N

    StartDate.setText(resourceMap.getString("StartDate.text")); // NOI18N
    StartDate.setActionCommand(resourceMap.getString("StartDate.actionCommand")); // NOI18N
    StartDate.setName("StartDate"); // NOI18N

    EndDate.setText(resourceMap.getString("EndDate.text")); // NOI18N
    EndDate.setName("EndDate"); // NOI18N

    Semester.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
    Semester.setName("Semester"); // NOI18N

    jLabel7.setText("Notes");
    jLabel7.setName("jLabel7"); // NOI18N

    jScrollPane3.setName("jScrollPane3"); // NOI18N

    Notes.setColumns(20);
    Notes.setRows(5);
    Notes.setName("Notes"); // NOI18N
    jScrollPane3.setViewportView(Notes);

    isGraded.setText("Include in GPA?");
    isGraded.setName("isGraded"); // NOI18N

    jLabel35.setText("NOTE: Times must be in 24-hour time format.");
    jLabel35.setName("jLabel35"); // NOI18N

    jScrollPane1.setName("jScrollPane1"); // NOI18N

    Scale.setModel(new javax.swing.table.DefaultTableModel(
        new Object [][] {
            {"A", 90, 4},
            {"B", 80, 3},
            {"C", 70, 2},
            {"D", 60, 1},
            {null, null, null},
            {null, null, null},
            {null, null, null},
            {null, null, null},
            {null, null, null},
            {null, null, null},
            {null, null, null},
            {null, null, null},
            {null, null, null},
        },
        new String [] {
            "Grade Identifier", "Lower Bound", "Grade Points"
        }
    ));
    Scale.setGridColor(new Color(0,0,0));
    Scale.setName("Scale"); // NOI18N
    jScrollPane1.setViewportView(Scale);

    jScrollPane2.setName("jScrollPane2"); // NOI18N

    MeetingTimes.setModel(new javax.swing.table.DefaultTableModel(new Object [][] {
        {"Example", "11:30", "13:50", "N", "Y", "N", "Y", "N", "Y", "N"},
        {null, null, null, null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null, null, null, null}
        ,
        {null, null, null, null, null, null, null, null, null, null}
        ,
        {null, null, null, null, null, null, null, null, null, null}

    },
    new String [] {
        "Location", "Start Time", "End Time", "Su", "M", "T", "W", "R", "F", "Sa"
    }
    ));
    MeetingTimes.setGridColor(new Color(0,0,0));
    MeetingTimes.setName("MeetingTimes"); // NOI18N
    jScrollPane2.setViewportView(MeetingTimes);

    CourseName.setText("");
    CourseName.setName("CourseName"); // NOI18N

    org.jdesktop.layout.GroupLayout AddCourseLayout = new org.jdesktop.layout.GroupLayout(AddCourse.getContentPane());
    AddCourse.getContentPane().setLayout(AddCourseLayout);
    AddCourseLayout.setHorizontalGroup(
        AddCourseLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
        .add(AddCourseLayout.createSequentialGroup()
            .addContainerGap()
            .add(AddCourseLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(AddCourseLayout.createSequentialGroup()
                    .add(AddCourseLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                        .add(jLabel31)
                        .add(jLabel30)
                        .add(jLabel29)
                        .add(jLabel23)
                        .add(jLabel24)
                        .add(jLabel25)
                        .add(jLabel26)
                        .add(jLabel28)
                        .add(jLabel27))
                    .add(64, 64, 64)
                    .add(AddCourseLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                        .add(Office, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 187, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(Website, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 187, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(Email, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 187, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(Instructor, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 187, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(Hours, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 187, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(Section, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 187, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(Semester, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 187, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(org.jdesktop.layout.GroupLayout.TRAILING, AddCourseLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                            .add(CourseName, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 188, Short.MAX_VALUE)
                            .add(Number, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 188, Short.MAX_VALUE))))
                .add(jRadioButton2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 268, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(isWeighted, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 253, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(jLabel15, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(jLabel16, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 293, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
            .add(18, 18, 18)
            .add(AddCourseLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(AddCourseLayout.createSequentialGroup()
                    .add(AddCourseLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                        .add(jLabel32)
                        .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 343, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(27, 27, 27)
                    .add(AddCourseLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                        .add(jLabel7)
                        .add(jScrollPane3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 430, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                .add(jLabel33)
                .add(AddCourseLayout.createSequentialGroup()
                    .add(jLabel34)
                    .add(10, 10, 10)
                    .add(StartDate, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 103, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(1, 1, 1)
                    .add(EndDate, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 102, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .add(jScrollPane2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 800, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(jLabel35)
                .add(AddCourseLayout.createSequentialGroup()
                    .add(isGraded)
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 432, Short.MAX_VALUE)
                    .add(AddCourseSubmit, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 254, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
            .addContainerGap())
    );
    AddCourseLayout.setVerticalGroup(
        AddCourseLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
        .add(AddCourseLayout.createSequentialGroup()
            .addContainerGap()
            .add(AddCourseLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(AddCourseLayout.createSequentialGroup()
                    .add(AddCourseLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                        .add(AddCourseLayout.createSequentialGroup()
                            .add(jLabel32)
                            .add(8, 8, 8)
                            .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 223, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                        .add(AddCourseLayout.createSequentialGroup()
                            .add(jLabel7)
                            .add(8, 8, 8)
                            .add(jScrollPane3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 223, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                    .add(14, 14, 14)
                    .add(jLabel33)
                    .add(14, 14, 14)
                    .add(AddCourseLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                        .add(AddCourseLayout.createSequentialGroup()
                            .add(6, 6, 6)
                            .add(jLabel34))
                        .add(StartDate, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(EndDate, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(8, 8, 8)
                    .add(jScrollPane2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 145, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(41, 41, 41)
                    .add(AddCourseLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                        .add(AddCourseLayout.createSequentialGroup()
                            .add(jLabel35)
                            .add(10, 10, 10)
                            .add(isGraded))
                        .add(AddCourseSubmit)))
                .add(AddCourseLayout.createSequentialGroup()
                    .add(jLabel15, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(14, 14, 14)
                    .add(jLabel16, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 76, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(21, 21, 21)
                    .add(AddCourseLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                        .add(jLabel23)
                        .add(Semester, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(18, 18, 18)
                    .add(AddCourseLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                        .add(org.jdesktop.layout.GroupLayout.TRAILING, jLabel24)
                        .add(org.jdesktop.layout.GroupLayout.TRAILING, Number, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(14, 14, 14)
                    .add(AddCourseLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                        .add(org.jdesktop.layout.GroupLayout.TRAILING, jLabel25)
                        .add(org.jdesktop.layout.GroupLayout.TRAILING, CourseName, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                    .add(AddCourseLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                        .add(org.jdesktop.layout.GroupLayout.TRAILING, jLabel26)
                        .add(org.jdesktop.layout.GroupLayout.TRAILING, Section, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                    .add(AddCourseLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                        .add(org.jdesktop.layout.GroupLayout.TRAILING, jLabel28)
                        .add(org.jdesktop.layout.GroupLayout.TRAILING, Hours, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                    .add(AddCourseLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                        .add(org.jdesktop.layout.GroupLayout.TRAILING, jLabel27)
                        .add(org.jdesktop.layout.GroupLayout.TRAILING, Instructor, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                    .add(AddCourseLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                        .add(org.jdesktop.layout.GroupLayout.TRAILING, AddCourseLayout.createSequentialGroup()
                            .add(Email, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(Website, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(Office, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                        .add(org.jdesktop.layout.GroupLayout.TRAILING, AddCourseLayout.createSequentialGroup()
                            .add(jLabel29)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(jLabel30)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(jLabel31)))
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                    .add(isWeighted)
                    .add(7, 7, 7)
                    .add(jRadioButton2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
            .addContainerGap())
    );

    AddItems.setMinimumSize(new java.awt.Dimension(557, 463));
    AddItems.setName("AddItems"); // NOI18N
    AddItems.setResizable(false);
    AddItems.setSize(new java.awt.Dimension(557, 463));

    jLabel17.setText(resourceMap.getString("jLabel17.text")); // NOI18N
    jLabel17.setName("jLabel17"); // NOI18N

    jLabel18.setText(resourceMap.getString("jLabel18.text")); // NOI18N
    jLabel18.setName("jLabel18"); // NOI18N
    jLabel18.setSize(new java.awt.Dimension(20, 16));

    AddItem_Submit.setText("Add to Profile");
    AddItem_Submit.setName("AddItem_Submit"); // NOI18N
    AddItem_Submit.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            AddItem_SubmitActionPerformed(evt);
        }
    });

    jLabel4.setText("<html><b>Name:</b></html>");
    jLabel4.setName("jLabel4"); // NOI18N

    jLabel9.setText("<html><b>Points Possible:</b></html>");
    jLabel9.setName("jLabel9"); // NOI18N

    jLabel40.setText("<html><b>Points Earned:</b></html>");
    jLabel40.setName("jLabel40"); // NOI18N

    isComplete.setText("Complete?");
    isComplete.setName("isComplete"); // NOI18N

    isGraded_item.setText("Include in Grade?");
    isGraded_item.setName("isGraded_item"); // NOI18N

    pointsearned.setText(resourceMap.getString("pointsearned.text")); // NOI18N
    pointsearned.setName("pointsearned"); // NOI18N

    pointspossible.setText(resourceMap.getString("pointspossible.text")); // NOI18N
    pointspossible.setName("pointspossible"); // NOI18N

    name_item.setText(resourceMap.getString("name_item.text")); // NOI18N
    name_item.setName("name_item"); // NOI18N
    name_item.setSize(new java.awt.Dimension(14, 28));

    jScrollPane4.setName("jScrollPane4"); // NOI18N

    Notes_item.setColumns(20);
    Notes_item.setRows(5);
    Notes_item.setName("Notes_item"); // NOI18N
    jScrollPane4.setViewportView(Notes_item);

    jLabel41.setText("<html><b>Notes:</b></html>");
    jLabel41.setName("jLabel41"); // NOI18N

    jLabel42.setText("<html><b>Semester:</b></html>");
    jLabel42.setName("jLabel42"); // NOI18N

    semester_item.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
    semester_item.setName("semester_item"); // NOI18N
    semester_item.addItemListener(new java.awt.event.ItemListener() {
        public void itemStateChanged(java.awt.event.ItemEvent evt) {
            semester_itemItemStateChanged(evt);
        }
    });

    jLabel43.setText("<html><b>Category:</b></html>");
    jLabel43.setName("jLabel43"); // NOI18N

    jLabel44.setText("<html><b>Course:</b></html>");
    jLabel44.setName("jLabel44"); // NOI18N

    course_item.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "" }));
    course_item.setName("course_item"); // NOI18N
    course_item.addItemListener(new java.awt.event.ItemListener() {
        public void itemStateChanged(java.awt.event.ItemEvent evt) {
            course_itemItemStateChanged(evt);
        }
    });

    category_item.setModel(new javax.swing.DefaultComboBoxModel(new String[] { ""}));
    category_item.setName("category_item"); // NOI18N

    jLabel45.setText("<html><b>Due: </b></html>");
    jLabel45.setName("jLabel45"); // NOI18N

    item_due.setText("No Due Date");
    item_due.setName("item_due"); // NOI18N

    jLabel46.setText("<html>(MM/DD/YYYY HH:MM 24-hour format)<html>");
    jLabel46.setName("jLabel46"); // NOI18N

    org.jdesktop.layout.GroupLayout AddItemsLayout = new org.jdesktop.layout.GroupLayout(AddItems.getContentPane());
    AddItems.getContentPane().setLayout(AddItemsLayout);
    AddItemsLayout.setHorizontalGroup(
        AddItemsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
        .add(AddItemsLayout.createSequentialGroup()
            .addContainerGap()
            .add(AddItemsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(jLabel17, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(jLabel18, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 293, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(org.jdesktop.layout.GroupLayout.TRAILING, AddItem_Submit)
                .add(AddItemsLayout.createSequentialGroup()
                    .add(AddItemsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                        .add(AddItemsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
                            .add(AddItemsLayout.createSequentialGroup()
                                .add(jLabel40)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(pointsearned))
                            .add(org.jdesktop.layout.GroupLayout.TRAILING, AddItemsLayout.createSequentialGroup()
                                .add(jLabel9)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(pointspossible))
                            .add(AddItemsLayout.createSequentialGroup()
                                .add(AddItemsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                                    .add(jLabel42)
                                    .add(jLabel44)
                                    .add(jLabel43)
                                    .add(jLabel4))
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(AddItemsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
                                    .add(name_item)
                                    .add(category_item, 0, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .add(course_item, 0, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .add(semester_item, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 152, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))))
                        .add(AddItemsLayout.createSequentialGroup()
                            .add(isComplete)
                            .add(18, 18, 18)
                            .add(isGraded_item)))
                    .add(18, 18, 18)
                    .add(AddItemsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                        .add(item_due, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 249, Short.MAX_VALUE)
                        .add(jLabel45)
                        .add(jLabel46)
                        .add(jLabel41)
                        .add(jScrollPane4, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 249, Short.MAX_VALUE))))
            .addContainerGap())
    );
    AddItemsLayout.setVerticalGroup(
        AddItemsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
        .add(AddItemsLayout.createSequentialGroup()
            .addContainerGap()
            .add(jLabel17, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
            .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
            .add(jLabel18, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 76, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
            .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
            .add(AddItemsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                .add(jLabel42)
                .add(semester_item, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(jLabel41))
            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
            .add(AddItemsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(AddItemsLayout.createSequentialGroup()
                    .add(AddItemsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                        .add(course_item, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(jLabel44))
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                    .add(AddItemsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                        .add(category_item, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(jLabel43))
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
                    .add(AddItemsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                        .add(jLabel4)
                        .add(name_item, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                    .add(AddItemsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                        .add(pointspossible, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(jLabel9))
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                    .add(AddItemsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                        .add(jLabel40)
                        .add(pointsearned, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
                    .add(AddItemsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                        .add(isComplete)
                        .add(isGraded_item)))
                .add(AddItemsLayout.createSequentialGroup()
                    .add(jScrollPane4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 158, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                    .add(jLabel45)
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                    .add(jLabel46)))
            .add(5, 5, 5)
            .add(item_due, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .add(AddItem_Submit)
            .addContainerGap())
    );

    AddTestScore.setMinimumSize(new java.awt.Dimension(333, 190));
    AddTestScore.setName("AddTestScore"); // NOI18N
    AddTestScore.setResizable(false);

    jLabel19.setText(resourceMap.getString("jLabel19.text")); // NOI18N
    jLabel19.setName("jLabel19"); // NOI18N

    AddScore_Submit.setText("Add to Profile");
    AddScore_Submit.setName("AddScore_Submit"); // NOI18N
    AddScore_Submit.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            AddScore_SubmitActionPerformed(evt);
        }
    });

    jLabel21.setText(resourceMap.getString("jLabel21.text")); // NOI18N
    jLabel21.setName("jLabel21"); // NOI18N

    jLabel22.setText(resourceMap.getString("jLabel22.text")); // NOI18N
    jLabel22.setName("jLabel22"); // NOI18N

    TestScore_name.setText(resourceMap.getString("TestScore_name.text")); // NOI18N
    TestScore_name.setName("TestScore_name"); // NOI18N

    TestScore_score.setText(resourceMap.getString("TestScore_score.text")); // NOI18N
    TestScore_score.setName("TestScore_score"); // NOI18N

    org.jdesktop.layout.GroupLayout AddTestScoreLayout = new org.jdesktop.layout.GroupLayout(AddTestScore.getContentPane());
    AddTestScore.getContentPane().setLayout(AddTestScoreLayout);
    AddTestScoreLayout.setHorizontalGroup(
        AddTestScoreLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
        .add(AddTestScoreLayout.createSequentialGroup()
            .addContainerGap()
            .add(AddTestScoreLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(jLabel19, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(AddTestScoreLayout.createSequentialGroup()
                    .add(AddTestScoreLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                        .add(org.jdesktop.layout.GroupLayout.LEADING, jLabel22, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(org.jdesktop.layout.GroupLayout.LEADING, jLabel21, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                    .add(AddTestScoreLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                        .add(TestScore_score, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 168, Short.MAX_VALUE)
                        .add(TestScore_name, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 168, Short.MAX_VALUE)))
                .add(org.jdesktop.layout.GroupLayout.TRAILING, AddScore_Submit))
            .addContainerGap())
    );
    AddTestScoreLayout.setVerticalGroup(
        AddTestScoreLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
        .add(AddTestScoreLayout.createSequentialGroup()
            .addContainerGap()
            .add(jLabel19, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
            .add(18, 18, 18)
            .add(AddTestScoreLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                .add(jLabel21, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(TestScore_name, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
            .add(18, 18, 18)
            .add(AddTestScoreLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                .add(jLabel22, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(TestScore_score, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 16, Short.MAX_VALUE)
            .add(AddScore_Submit)
            .addContainerGap())
    );

    AddCategory.setMinimumSize(new java.awt.Dimension(361, 320));
    AddCategory.setName("AddCategory"); // NOI18N
    AddCategory.setResizable(false);
    AddCategory.setSize(new java.awt.Dimension(394, 278));

    jLabel36.setText("<html><b>Add New Category</b></html>");
    jLabel36.setName("jLabel36"); // NOI18N

    Category_Submit.setText("Add To Profile");
    Category_Submit.setName("Category_Submit"); // NOI18N
    Category_Submit.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            Category_SubmitActionPerformed(evt);
        }
    });

    category_nam.setText("<html><b>Name:</b></html>");
    category_nam.setName("category_nam"); // NOI18N

    label.setText("<html><b>Weight:</b></html>");
    label.setName("label"); // NOI18N

    category_name.setName("category_name"); // NOI18N

    category_weight.setName("category_weight"); // NOI18N

    jLabel20.setText("<html><b>Drops:</b></html>");
    jLabel20.setName("jLabel20"); // NOI18N

    category_drops.setText(resourceMap.getString("category_drops.text")); // NOI18N
    category_drops.setName("category_drops"); // NOI18N

    jLabel56.setText("<html><b>Semester:</b></html>");
    jLabel56.setName("jLabel56"); // NOI18N

    jLabel37.setText("<html><b>Course:</b></html>");
    jLabel37.setName("jLabel37"); // NOI18N

    semester_spin.setModel(new javax.swing.DefaultComboBoxModel(new String[] { ""}));
    semester_spin.setName("semester_spin"); // NOI18N
    semester_spin.addItemListener(new java.awt.event.ItemListener() {
        public void itemStateChanged(java.awt.event.ItemEvent evt) {
            semester_spinItemStateChanged(evt);
        }
    });

    course_spin.setName("course_spin"); // NOI18N

    jLabel38.setText("%");
    jLabel38.setName("jLabel38"); // NOI18N

    org.jdesktop.layout.GroupLayout AddCategoryLayout = new org.jdesktop.layout.GroupLayout(AddCategory.getContentPane());
    AddCategory.getContentPane().setLayout(AddCategoryLayout);
    AddCategoryLayout.setHorizontalGroup(
        AddCategoryLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
        .add(AddCategoryLayout.createSequentialGroup()
            .addContainerGap()
            .add(AddCategoryLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(jLabel36)
                .add(AddCategoryLayout.createSequentialGroup()
                    .add(AddCategoryLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                        .add(jLabel20)
                        .add(jLabel56)
                        .add(jLabel37)
                        .add(category_nam)
                        .add(label))
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                    .add(AddCategoryLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false)
                        .add(org.jdesktop.layout.GroupLayout.LEADING, course_spin, 0, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .add(org.jdesktop.layout.GroupLayout.LEADING, semester_spin, 0, 166, Short.MAX_VALUE)
                        .add(org.jdesktop.layout.GroupLayout.LEADING, category_name)
                        .add(org.jdesktop.layout.GroupLayout.LEADING, category_weight)
                        .add(org.jdesktop.layout.GroupLayout.LEADING, category_drops)
                        .add(Category_Submit))
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                    .add(jLabel38)))
            .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
    );
    AddCategoryLayout.setVerticalGroup(
        AddCategoryLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
        .add(AddCategoryLayout.createSequentialGroup()
            .addContainerGap()
            .add(jLabel36)
            .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
            .add(AddCategoryLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                .add(semester_spin, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(jLabel20))
            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
            .add(AddCategoryLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                .add(course_spin, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(jLabel56))
            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
            .add(AddCategoryLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                .add(category_name, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(jLabel37))
            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
            .add(AddCategoryLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                .add(AddCategoryLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(category_weight, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jLabel38))
                .add(category_nam))
            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
            .add(AddCategoryLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                .add(category_drops, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(label))
            .add(18, 18, 18)
            .add(Category_Submit)
            .addContainerGap())
    );

    NoStudent.setAlwaysOnTop(true);
    NoStudent.setMinimumSize(new java.awt.Dimension(333, 120));
    NoStudent.setName("NoStudent"); // NOI18N
    NoStudent.setResizable(false);

    jButton12.setText("OK");
    jButton12.setName("jButton12"); // NOI18N
    jButton12.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton12ActionPerformed(evt);
        }
    });

    jLabel47.setText("No Student Loaded, please load a student.");
    jLabel47.setName("jLabel47"); // NOI18N

    org.jdesktop.layout.GroupLayout NoStudentLayout = new org.jdesktop.layout.GroupLayout(NoStudent.getContentPane());
    NoStudent.getContentPane().setLayout(NoStudentLayout);
    NoStudentLayout.setHorizontalGroup(
        NoStudentLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
        .add(NoStudentLayout.createSequentialGroup()
            .addContainerGap()
            .add(jLabel47)
            .addContainerGap(229, Short.MAX_VALUE))
        .add(org.jdesktop.layout.GroupLayout.TRAILING, NoStudentLayout.createSequentialGroup()
            .addContainerGap(188, Short.MAX_VALUE)
            .add(jButton12)
            .addContainerGap())
    );
    NoStudentLayout.setVerticalGroup(
        NoStudentLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
        .add(NoStudentLayout.createSequentialGroup()
            .addContainerGap()
            .add(jLabel47)
            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .add(jButton12)
            .addContainerGap())
    );

    setComponent(mainPanel);
    setMenuBar(menuBar);
    setStatusBar(statusPanel);
    }// </editor-fold>//GEN-END:initComponents

    private void Load_BTNActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_Load_BTNActionPerformed
        FileSystemView fsv = FileSystemView.getFileSystemView();

        File[] drives;

        String osName = System.getProperty("os.name").toLowerCase();

        if (osName.startsWith("mac os x")) {
            File f = new File("/Volumes");
            drives = f.listFiles();
        }
        else if (osName.startsWith("windows")){
            File f = new File("\\");
            File parent = fsv.getParentDirectory(f);
            drives = parent.listFiles();
        } else { //is Linux
            File f = new File("/Home");
            drives = f.listFiles();
        }

        String[] driveNames = new String[drives.length];
        if (osName.startsWith("windows")){
            for (int i = 0; i < driveNames.length; i++)
                driveNames[i] = drives[i].getAbsolutePath();
        } else {
            for (int i = 0; i < driveNames.length; i++) {
                driveNames[i] = drives[i].getName();
            }
        }

        mComboBox_Drive1.setModel(new DefaultComboBoxModel((driveNames)));
        mComboBox_Drive1.revalidate();
        mComboBox_Drive1.repaint();
        try{
        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
        GraphicsDevice[] gs = ge.getScreenDevices();
        DisplayMode dm = gs[0].getDisplayMode();
        Dialog_DriveSelectImport.setLocation(dm.getWidth()/4, dm.getHeight()/4);
        }catch(Exception e){}
        Dialog_DriveSelectImport.repaint();
        Dialog_DriveSelectImport.setVisible(true);


    }//GEN-LAST:event_Load_BTNActionPerformed

    private void Save_BTNActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_Save_BTNActionPerformed
        // SAVE PROFILE
        try {
            if(!student.name.equals("DONTSAVE")){
                SyncAndroid.syncToDroid(student, mComboBox_Drive1.getSelectedItem().toString(), "student");
                 Action.setText("Student Saved to Phone!");
            } else{
                NoStudent.setVisible(true);
            }
            //Profile_Loaded.setText("No Student Loaded");
            
        } catch (Exception ex) {
            System.err.println("ERROR SYNCING TO DESKTOP");
        }
    }//GEN-LAST:event_Save_BTNActionPerformed

    private void AddSem_BTNActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_AddSem_BTNActionPerformed
        //Add Semester
        if(!student.name.equals("DONTSAVE")){
            Term.setSelectedIndex(0);
            Year.setText("");
            GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
            GraphicsDevice[] gs = ge.getScreenDevices();
            DisplayMode dm = gs[0].getDisplayMode();
            AddSemester.setLocation(dm.getWidth()/4, dm.getHeight()/4);
            AddSemester.setVisible(true);
            }
        else {
                NoStudent.setVisible(true);
            }
        
    }//GEN-LAST:event_AddSem_BTNActionPerformed

    private void AddCourse_BTNActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_AddCourse_BTNActionPerformed
        //Add Course
        if(!student.name.equals("DONTSAVE")){
        String[] semesters = new String[student.semesters.size()];
        for(int i = 0; i < student.semesters.size();i++){
            Semester s = student.semesters.get(i);
            semesters[i] = s.toString();
        }

        Semester.setModel(new javax.swing.DefaultComboBoxModel(semesters));
        Number.setText("");
        CourseName.setText("");
        Website.setText("");
        Instructor.setText("");
        Section.setText("");
        Office.setText("");
        Hours.setText("");
        Email.setText("");
        StartDate.setText("1/1/2011");
        EndDate.setText("5/1/2011");
        Notes.setText("");
        MeetingTimes.setModel(new javax.swing.table.DefaultTableModel(
    new Object [][] {
        {"Example", "11:30", "13:50", "N", "Y", "N", "Y", "N", "Y", "N"},
        {null, null, null, null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null, null, null, null}
        ,
        {null, null, null, null, null, null, null, null, null, null}
        ,
        {null, null, null, null, null, null, null, null, null, null}

    },
    new String [] {
        "Location", "Start Time", "End Time", "Su", "M", "T", "W", "R", "F", "Sa"
    }
));
        Scale.setModel(new javax.swing.table.DefaultTableModel(
    new Object [][] {
        {"A", 90, 4},
        {"B", 80, 3},
        {"C", 70, 2},
        {"D", 60, 1},
        {null, null, null},
        {null, null, null},
        {null, null, null},
        {null, null, null},
        {null, null, null},
        {null, null, null},
        {null, null, null},
        {null, null, null},
        {null, null, null},
    },
    new String [] {
        "Grade Identifier", "Lower Bound", "Grade Points"
    }
));
        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
        GraphicsDevice[] gs = ge.getScreenDevices();
        DisplayMode dm = gs[0].getDisplayMode();
        AddCourse.setLocation(dm.getWidth()/8, dm.getHeight()/8);
        AddCourse.setVisible(true);
         } else {
                NoStudent.setVisible(true);
            }

    }//GEN-LAST:event_AddCourse_BTNActionPerformed

    private void AddItem_BTNActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_AddItem_BTNActionPerformed
        if(!student.name.equals("DONTSAVE")){

        //Add Item
        String[] semesters = new String[student.semesters.size()];
        for(int i = 0; i < student.semesters.size();i++){
            Semester s = student.semesters.get(i);
            semesters[i] = s.toString();
        }
        semester_item.setModel(new javax.swing.DefaultComboBoxModel(semesters));

        Semester sem = student.semesters.get(semester_item.getSelectedIndex());
        String[] courses = new String[sem.courses.size()];
        for(int i = 0; i < sem.courses.size();i++){
            Course c = sem.courses.get(i);
            courses[i] = c.number;
        }

        course_item.setModel(new javax.swing.DefaultComboBoxModel(courses));

         Course cor = student.semesters.get(semester_item.getSelectedIndex()).courses.get(course_item.getSelectedIndex());
        String[] cats = new String[cor.categories.size()];
        for(int i = 0; i < cor.categories.size();i++){
            Category cat = cor.categories.get(i);
            cats[i] = cat.name;
        }

        category_item.setModel(new javax.swing.DefaultComboBoxModel(cats));


        name_item.setText("");
        pointspossible.setText("");
        pointsearned.setText("");
        Notes_item.setText("");
        isComplete.setSelected(false);
        isGraded_item.setSelected(false);
        item_due.setText("No Due Date");


        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
        GraphicsDevice[] gs = ge.getScreenDevices();
        DisplayMode dm = gs[0].getDisplayMode();
        AddItems.setLocation(dm.getWidth()/4, dm.getHeight()/4);
        AddItems.setVisible(true);
        } else {
                NoStudent.setVisible(true);
            }

        
    }//GEN-LAST:event_AddItem_BTNActionPerformed

    private void AddScore_BTNActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_AddScore_BTNActionPerformed
        //Test Score
        if(!student.name.equals("DONTSAVE")){

        TestScore_name.setText("");
        TestScore_score.setText("");
        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
        GraphicsDevice[] gs = ge.getScreenDevices();
        DisplayMode dm = gs[0].getDisplayMode();
        AddTestScore.setLocation(dm.getWidth()/4, dm.getHeight()/4);
        AddTestScore.setVisible(true);
        } else {
                NoStudent.setVisible(true);
            }
    }//GEN-LAST:event_AddScore_BTNActionPerformed

    private void AddCourseSubmitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_AddCourseSubmitActionPerformed
      if(!student.name.equals("DONTSAVE")){

        // TODO add your handling code here:
        Course c = new Course();
        c.email = Email.getText().toString();
        c.website = Website.getText().toString();
        c.instructor = Instructor.getText().toString();
        try{
            c.hours = new Integer(Hours.getText().toString());
        }catch(Exception e){
            c.hours = 0;
        }
        c.isByPoints = !isWeighted.isSelected();
        c.location = Office.getText().toString();
        c.name = CourseName.getText().toString();
        c.number = Number.getText().toString();
        c.section = Section.getText().toString();
        c.notes = Notes.getText().toString();
        c.isGraded = isGraded.isSelected();

        c.scale.scale.clear();
        try{
        for(int i = 0; Scale.getModel().getValueAt(i, 0) != null; i++){
            Letter l = new Letter(Scale.getModel().getValueAt(i, 0).toString(), new Double(Scale.getModel().getValueAt(i, 1).toString()), new Double(Scale.getModel().getValueAt(i, 2).toString()));
            c.scale.scale.add(l);
        }
        }catch(Exception e){}

        Course_Schedule_ContainerGroup cg = new Course_Schedule_ContainerGroup();
        Date date = new Date();
        date.setMonth(new Integer((StartDate.getText().toString().split("/"))[0])-1);
        date.setDate(new Integer((StartDate.getText().toString().split("/"))[1]));
        date.setYear(new Integer((StartDate.getText().toString().split("/"))[2])-1900);
        date.setHours(0);
        date.setMinutes(0);
        date.setSeconds(0);

        long rep = date.getTime();
        cg.startDate = date.getTime();


        date.setMonth(new Integer((EndDate.getText().toString().split("/"))[0])-1);
        date.setDate(new Integer((EndDate.getText().toString().split("/"))[1]));
        date.setYear(new Integer((EndDate.getText().toString().split("/"))[2])-1900);
        date.setHours(0);
        date.setMinutes(0);
        date.setSeconds(0);

        rep = date.getTime();
        cg.endDate = date.getTime();


        for(int i = 0 ; MeetingTimes.getModel().getValueAt(i, 0) != null; i++){
            Course_Schedule_Container con = new Course_Schedule_Container();
            // {"Example", "9:30 am", "10:30 am", "N", "Y", "N", "Y", "N", "Y", "N"},
            con.location = MeetingTimes.getModel().getValueAt(i, 0).toString();
            con.startHour = new Integer(MeetingTimes.getModel().getValueAt(i, 1).toString().split(":")[0]);
            con.startMin = new Integer(MeetingTimes.getModel().getValueAt(i, 1).toString().split(":")[1]);
            con.endHour = new Integer(MeetingTimes.getModel().getValueAt(i, 2).toString().split(":")[0]);
            con.endMin = new Integer(MeetingTimes.getModel().getValueAt(i, 2).toString().split(":")[1]);
            con.sunday = MeetingTimes.getModel().getValueAt(i, 3).toString().equals("Y") ? true : false;
            con.monday = MeetingTimes.getModel().getValueAt(i, 4).toString().equals("Y") ? true : false;
            con.tuesday = MeetingTimes.getModel().getValueAt(i, 5).toString().equals("Y") ? true : false;            
            con.wednesday = MeetingTimes.getModel().getValueAt(i, 6).toString().equals("Y") ? true : false;
            con.thursday = MeetingTimes.getModel().getValueAt(i, 7).toString().equals("Y") ? true : false;
            con.friday = MeetingTimes.getModel().getValueAt(i, 8).toString().equals("Y") ? true : false;
            con.saturday = MeetingTimes.getModel().getValueAt(i, 9).toString().equals("Y") ? true : false;

            cg.containers.add(con);
        }

        c.ID = ProcessCourseID.createIdFromContainerGroup(cg);
        //add course to student
        boolean added = false;
        int i = 0;
        for(i = 0; i < student.semesters.get(Semester.getSelectedIndex()).courses.size(); i++){
            Course exists = student.semesters.get(Semester.getSelectedIndex()).courses.get(i);
            if(exists.number.equals(c.number)) //overwrite
            {
                exists = c;
                added = true;
                break;
            }
        }
        if(!added) student.semesters.get(Semester.getSelectedIndex()).courses.add(c);
        else student.semesters.get(Semester.getSelectedIndex()).courses.set(i, c);

        AddCourse.setVisible(false);
        Action.setText("Course "+ c.number + " Added");

        } else {
                NoStudent.setVisible(true);
            }
    }//GEN-LAST:event_AddCourseSubmitActionPerformed

    private void AddSemesterSubmitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_AddSemesterSubmitActionPerformed
       
        int term = Term.getSelectedIndex();
        int year = new Integer(Year.getText().toString()) - 2000;

        boolean exists = false;

        for(Semester s: student.semesters){
            if(s.term == term && s.year == year){
                exists = true;
            }
        }

        Semester sem = new Semester();
        if(!exists){
            sem.term = term;
            sem.year = year;
            student.semesters.add(sem);
        }

        AddSemester.setVisible(false);
        Action.setText("Semester " + sem.toString() + " Added");
        
    }//GEN-LAST:event_AddSemesterSubmitActionPerformed

    private void AddCategory_BTNActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_AddCategory_BTNActionPerformed
       if(!student.name.equals("DONTSAVE")){

        String[] semesters = new String[student.semesters.size()];
        for(int i = 0; i < student.semesters.size();i++){
            Semester s = student.semesters.get(i);
            semesters[i] = s.toString();
        }
        semester_spin.setModel(new javax.swing.DefaultComboBoxModel(semesters));

        Semester sem = student.semesters.get(semester_item.getSelectedIndex());
        String[] courses = new String[sem.courses.size()];
        for(int i = 0; i < sem.courses.size();i++){
            Course c = sem.courses.get(i);
            courses[i] = c.number;
        }

        course_spin.setModel(new javax.swing.DefaultComboBoxModel(courses));

        category_weight.setText("");
        category_drops.setText("");
        category_name.setText("");

        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
        GraphicsDevice[] gs = ge.getScreenDevices();
        DisplayMode dm = gs[0].getDisplayMode();
        AddCategory.setLocation(dm.getWidth()/4, dm.getHeight()/4);
        AddCategory.setVisible(true);
        } else {
                NoStudent.setVisible(true);
            }
    }//GEN-LAST:event_AddCategory_BTNActionPerformed

    private void AddItem_SubmitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_AddItem_SubmitActionPerformed
        Item it = new Item();
        it.description = name_item.getText().toString();
        try{
        it.pointsPossible = new Double(pointspossible.getText().toString());
        it.pointsEarned = new Double(pointsearned.getText().toString());
        }catch(Exception e){
            it.pointsEarned = 0;
            it.pointsPossible = 100;
        }

        it.notes = Notes_item.getText().toString();
        it.isComplete = isComplete.isSelected();
        it.setGraded(isGraded_item.isSelected());

        int DAY = 0;
	int HOUR = 0;
	int MINUTE = 0;
	int MONTH = 0;
	int YEAR = 70;
        Date d = new Date();
        d.setDate(DAY);
        d.setMinutes(MINUTE);
        d.setMonth(MONTH);
        d.setYear(YEAR);
        d.setHours(HOUR);
        it.dateDue = d;


        String dueString = item_due.getText().toString();
        if(!dueString.equals("No Due Date")){
           try{
            String[] due = dueString.split(" ");
            String[] date = due[0].split("/");
            MONTH = (new Integer(date[0]))-1;
            DAY = (new Integer(date[1]));
            YEAR = (new Integer(date[2]));

            String[] time = due[1].split(":");
            HOUR = (new Integer(time[0]));
            MINUTE = (new Integer(time[1]));
            d.setDate(DAY);
            d.setMinutes(MINUTE);
            d.setMonth(MONTH);
            d.setYear(YEAR);
            d.setHours(HOUR);
            it.dateDue = d;}
           catch(Exception e){}
        }
        
        student.semesters.get(semester_item.getSelectedIndex()).courses.get(course_item.getSelectedIndex()).categories.get(category_item.getSelectedIndex()).items.add(it);
        AddItems.setVisible(false);
        Action.setText("Item " + it.description + " Added");
    }//GEN-LAST:event_AddItem_SubmitActionPerformed

    private void semester_itemItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_semester_itemItemStateChanged
        Semester sem = student.semesters.get(semester_item.getSelectedIndex());
        String[] courses = new String[sem.courses.size()];
        for(int i = 0; i < sem.courses.size();i++){
            Course c = sem.courses.get(i);
            courses[i] = c.number;
        }

        course_item.setModel(new javax.swing.DefaultComboBoxModel(courses));

         Course cor = student.semesters.get(semester_item.getSelectedIndex()).courses.get(course_item.getSelectedIndex());
        String[] cats = new String[cor.categories.size()];
        for(int i = 0; i < cor.categories.size();i++){
            Category cat = cor.categories.get(i);
            cats[i] = cat.name;
        }

        category_item.setModel(new javax.swing.DefaultComboBoxModel(cats));

        
        
    }//GEN-LAST:event_semester_itemItemStateChanged

    private void course_itemItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_course_itemItemStateChanged
        Course cor = student.semesters.get(semester_item.getSelectedIndex()).courses.get(course_item.getSelectedIndex());
        String[] cats = new String[cor.categories.size()];
        for(int i = 0; i < cor.categories.size();i++){
            Category cat = cor.categories.get(i);
            cats[i] = cat.name;
        }

        category_item.setModel(new javax.swing.DefaultComboBoxModel(cats));

        
    }//GEN-LAST:event_course_itemItemStateChanged

    private void AddScore_SubmitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_AddScore_SubmitActionPerformed
        TestScore ts = new TestScore(TestScore_name.getText().toString(), TestScore_score.getText().toString());
        student.testscores.add(ts);

        AddTestScore.setVisible(false);
        Action.setText("Test Score " + ts.test_description + " Added");
        
    }//GEN-LAST:event_AddScore_SubmitActionPerformed

    private void semester_spinItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_semester_spinItemStateChanged
        Semester sem = student.semesters.get(semester_spin.getSelectedIndex());
        String[] courses = new String[sem.courses.size()];
        for(int i = 0; i < sem.courses.size();i++){
            Course c = sem.courses.get(i);
            courses[i] = c.number;
        }

        course_spin.setModel(new javax.swing.DefaultComboBoxModel(courses));


    }//GEN-LAST:event_semester_spinItemStateChanged

    private void Category_SubmitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_Category_SubmitActionPerformed
        Category cat = new Category();
        try{
        cat.drops = new Integer(category_drops.getText().toString().trim());
        cat.weight = new Double(category_weight.getText().toString().trim());}
        catch(Exception e){
            cat.drops = 0;
            cat.weight = 100;
        }
        cat.name = category_name.getText().toString();


        student.semesters.get(semester_spin.getSelectedIndex()).courses.get(course_spin.getSelectedIndex()).categories.add(cat);
        AddCategory.setVisible(false);
        Action.setText("Category " + cat.name + " Added");
    }//GEN-LAST:event_Category_SubmitActionPerformed

    private void jButton11ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton11ActionPerformed
        //LOAD PROFILE
        try {
            student = SyncAndroid.syncToDesktop(mComboBox_Drive1.getSelectedItem().toString());
            Profile_Loaded.setText("Student Loaded: " + student.name);
        } catch (Exception ex) {
            System.err.println("ERROR SYNCING TO DESKTOP");
        }
        Dialog_DriveSelectImport.setVisible(false);
}//GEN-LAST:event_jButton11ActionPerformed

    private void jButton12ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton12ActionPerformed
        NoStudent.setVisible(false);
    }//GEN-LAST:event_jButton12ActionPerformed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JLabel Action;
    private javax.swing.JDialog AddCategory;
    private javax.swing.JButton AddCategory_BTN;
    private javax.swing.JDialog AddCourse;
    private javax.swing.JButton AddCourseSubmit;
    private javax.swing.JButton AddCourse_BTN;
    private javax.swing.JButton AddItem_BTN;
    private javax.swing.JButton AddItem_Submit;
    private javax.swing.JDialog AddItems;
    private javax.swing.JButton AddScore_BTN;
    private javax.swing.JButton AddScore_Submit;
    private javax.swing.JButton AddSem_BTN;
    private javax.swing.JDialog AddSemester;
    private javax.swing.JButton AddSemesterSubmit;
    private javax.swing.JDialog AddTestScore;
    private javax.swing.JButton Category_Submit;
    private javax.swing.JTextField CourseName;
    private javax.swing.JDialog Dialog_DriveSelectImport;
    private javax.swing.JTextField Email;
    private javax.swing.JTextField EndDate;
    private javax.swing.JTextField Hours;
    private javax.swing.JTextField Instructor;
    private javax.swing.JButton Load_BTN;
    private javax.swing.JTable MeetingTimes;
    private javax.swing.JDialog NoStudent;
    private javax.swing.JTextArea Notes;
    private javax.swing.JTextArea Notes_item;
    private javax.swing.JTextField Number;
    private javax.swing.JTextField Office;
    private javax.swing.JLabel Profile_Loaded;
    private javax.swing.JButton Save_BTN;
    private javax.swing.JTable Scale;
    private javax.swing.JTextField Section;
    private javax.swing.JComboBox Semester;
    private javax.swing.JTextField StartDate;
    private javax.swing.JComboBox Term;
    private javax.swing.JTextField TestScore_name;
    private javax.swing.JTextField TestScore_score;
    private javax.swing.JTextField Website;
    private javax.swing.JTextField Year;
    private javax.swing.ButtonGroup buttonGroup1;
    private javax.swing.JTextField category_drops;
    private javax.swing.JComboBox category_item;
    private javax.swing.JLabel category_nam;
    private javax.swing.JTextField category_name;
    private javax.swing.JTextField category_weight;
    private javax.swing.JComboBox course_item;
    private javax.swing.JComboBox course_spin;
    private javax.swing.JCheckBox isComplete;
    private javax.swing.JCheckBox isGraded;
    private javax.swing.JCheckBox isGraded_item;
    private javax.swing.JRadioButton isWeighted;
    private javax.swing.JTextField item_due;
    private javax.swing.JButton jButton11;
    private javax.swing.JButton jButton12;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel14;
    private javax.swing.JLabel jLabel15;
    private javax.swing.JLabel jLabel16;
    private javax.swing.JLabel jLabel17;
    private javax.swing.JLabel jLabel18;
    private javax.swing.JLabel jLabel19;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel20;
    private javax.swing.JLabel jLabel21;
    private javax.swing.JLabel jLabel22;
    private javax.swing.JLabel jLabel23;
    private javax.swing.JLabel jLabel24;
    private javax.swing.JLabel jLabel25;
    private javax.swing.JLabel jLabel26;
    private javax.swing.JLabel jLabel27;
    private javax.swing.JLabel jLabel28;
    private javax.swing.JLabel jLabel29;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel30;
    private javax.swing.JLabel jLabel31;
    private javax.swing.JLabel jLabel32;
    private javax.swing.JLabel jLabel33;
    private javax.swing.JLabel jLabel34;
    private javax.swing.JLabel jLabel35;
    private javax.swing.JLabel jLabel36;
    private javax.swing.JLabel jLabel37;
    private javax.swing.JLabel jLabel38;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel40;
    private javax.swing.JLabel jLabel41;
    private javax.swing.JLabel jLabel42;
    private javax.swing.JLabel jLabel43;
    private javax.swing.JLabel jLabel44;
    private javax.swing.JLabel jLabel45;
    private javax.swing.JLabel jLabel46;
    private javax.swing.JLabel jLabel47;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel56;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JRadioButton jRadioButton2;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JScrollPane jScrollPane4;
    private javax.swing.JLabel label;
    private javax.swing.JComboBox mComboBox_Drive1;
    private javax.swing.JPanel mainPanel;
    private javax.swing.JMenuBar menuBar;
    private javax.swing.JTextField name_item;
    private javax.swing.JTextField pointsearned;
    private javax.swing.JTextField pointspossible;
    private javax.swing.JProgressBar progressBar;
    private javax.swing.JComboBox semester_item;
    private javax.swing.JComboBox semester_spin;
    private javax.swing.JLabel statusAnimationLabel;
    private javax.swing.JLabel statusMessageLabel;
    private javax.swing.JPanel statusPanel;
    // End of variables declaration//GEN-END:variables

    private final Timer messageTimer;
    private final Timer busyIconTimer;
    private final Icon idleIcon;
    private final Icon[] busyIcons = new Icon[15];
    private int busyIconIndex = 0;

    private JDialog aboutBox;
}
